package model

import (
	"fmt"
)

// MetricValue 采集信息结构
type MetricValue struct {
	Endpoint  string      `json:"endpoint"`    // 主机名
	Metric    string      `json:"metric"`      // 信息标识cpu.idle、mem.memtotal等
	Value     interface{} `json:"value"`       // 采集结果
	Step      int64       `json:"step"`        // 该项上报间隔
	Type      string      `json:"counterType"` // GAUGE或COUNTER
	Tags      string      `json:"tags"`        // 配置报警策略
	Timestamp int64       `json:"timestamp"`   // 此次上报时间
}

func (m *MetricValue) String() string {
	return fmt.Sprintf(
		"<Endpoint:%s, Metric:%s, Type:%s, Tags:%s, Step:%d, Time:%d, Value:%v>",
		m.Endpoint,
		m.Metric,
		m.Type,
		m.Tags,
		m.Step,
		m.Timestamp,
		m.Value,
	)
}
